<!--
    用户管理-学生用户-投递情况列表-应聘列表
 -->
<template>
  <section class="hire-com">
    <!-- 列表 -->
    <el-table
      v-if="list"
      v-loading="loading"
      :data="list"
      empty-text="暂无数据"
    >
      <el-table-column label="序号" type="index" />
      <el-table-column label="投递职位" align="center" prop="jobName" />
      <el-table-column label="所属企业" align="center" prop="companyName" />
      <el-table-column
        sortable="custom"
        label="投递时间"
        align="center"
        prop="postDate"
        width="180"
      >
        <template slot-scope="scope">
          <span>{{ moment(scope.row.postDate).format('yyyy-MM-DD') }}</span>
        </template>
      </el-table-column>
      <el-table-column
        label="是否收到面试邀约"
        align="center"
        prop="authorizedStatus"
      >
        <template slot-scope="scope">
          <!-- 简历状态，resumeStatus（投递过程的工单状态）0 未查看简历、1 已查看简历、2 已发送面试邀约、3 已确认面试邀约、4 已拒绝面试邀约、5 已面试反馈（企业）、6 已评价（学生） -->
          {{ Number(scope.row.status) >= 2 ? "是" : "否" }}
        </template>
      </el-table-column>

      <el-table-column label="是否应邀" align="center" prop="phoneNumber">
        <template slot-scope="scope">
          <!-- 简历状态，resumeStatus（投递过程的工单状态）0 未查看简历、1 已查看简历、2 已发送面试邀约、3 已确认面试邀约、4 已拒绝面试邀约、5 已面试反馈（企业）、6 已评价（学生） -->
          {{ Number(scope.row.status) > 2 ? "是" : "否" }}
        </template>
      </el-table-column>
      <el-table-column label="面试结果" align="center" prop="inviteResult">
        <template slot-scope="scope">
          <!-- 面试结果 inviteResultType 0 结果待定、1 面试通过、2 未通过、3 未赴约、4 已谢绝 -->
          {{ scope.row.inviteResult | returnStatus }}
        </template>
      </el-table-column>
      <el-table-column
        label="操作"
        align="center"
        class-name="small-padding fixed-width"
      >
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleCheck(scope.row)"
          >查看面试反馈</el-button>
        </template>
      </el-table-column>
    </el-table>
    <!-- 分页组件 -->
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="queryParams.pageNo"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- 查看面试反馈 -->
    <el-dialog
      title="查看面试反馈"
      :visible.sync="openResultDialog"
      width="50%"
      append-to-body
    >
      <el-form v-if="currentRow" label-width="80px" :model="currentRow">
        <el-form-item label="面试结果" prop="inviteResult">
          {{ currentRow.inviteResult | returnStatus }}
        </el-form-item>
        <el-form-item label="评价/原因" prop="evaluation">
          {{ currentRow.evaluation || "--" }}
        </el-form-item>
      </el-form>
    </el-dialog>
  </section>
</template>
<script>
import { getStudentRecord } from '@/api/school-admin-api/userManage/student/index.js'
import { deepClone } from '@/utils/index'
import { inviteResultType } from '@/utils/frontDataDict.js'
import moment from 'moment'
export default {
  name: 'Hire',
  filters: {
    returnStatus(data) {
      if (data === null || data === '') return '--'
      const hasItem = inviteResultType.find(
        (item) => Number(item.value) === Number(data)
      )
      return hasItem ? hasItem.label : '--'
    }
  },
  props: {
    id: {
      type: [String, Number],
      default: ''
    }
  },
  data() {
    return {
      moment: moment,
      inviteResultType: inviteResultType,
      // 遮罩层
      loading: true,
      total: 0,
      // 查询参数
      queryParams: {
        pageNo: 1,
        pageSize: 10
      },
      list: [],
      openResultDialog: false,
      currentRow: null
    }
  },
  methods: {
    // 查看面试结果
    handleCheck(row) {
      this.currentRow = deepClone(row)
      this.openResultDialog = true
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNo = 1
      this.getList()
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm('queryForm')
      this.handleQuery()
    },
    /** 查询列表 */
    getList() {
      this.loading = true
      // 处理查询参数
      const params = { ...this.queryParams }
      params.studentId = this.id
      // 执行查询
      getStudentRecord(params).then((response) => {
        this.list = response.data.list
        this.total = response.data.total
        this.loading = false
      })
    }
  }
}
</script>
<style lang="scss" scoped>
.hire-com {
  position: relative;
  // padding: 14px;
}
</style>
